/**
 * 优惠券相关类型定义
 */

// 优惠券类型枚举
export enum CouponType {
  FULL_REDUCTION = 1, // 满减券
  DISCOUNT = 2,       // 折扣券
}

// 优惠券状态枚举
export enum CouponStatus {
  INACTIVE = 0,  // 未激活
  ACTIVE = 1,    // 已激活
  EXPIRED = 2,   // 已过期
}

// 优惠券模板
export interface CouponTemplate {
  couponTemplateId: string;      // 优惠券模板ID
  merchantId: string;             // 商家ID
  name: string;                   // 优惠券名称
  description?: string;           // 优惠券描述
  type: CouponType;              // 类型：1-满减券，2-折扣券
  discountValue: number;         // 优惠值（满减券为减免金额，折扣券为折扣率如0.8表示8折）
  maxDiscountAmount?: number;    // 最大优惠金额（折扣券使用）
  minOrderAmount?: number;       // 最低订单金额
  validDays?: number;            // 有效天数
  validTo?: string;              // 有效期截止
  stock: number;                 // 库存
  isActive: boolean;             // 是否激活
  createdAt?: string;            // 创建时间
  updatedAt?: string;            // 更新时间
}

// 优惠券绑定
export interface CouponBinding {
  bindingId: string;             // 绑定ID
  merchantId: string;            // 商家ID
  couponId: string;              // 优惠券ID
  scope: number;                 // 适用范围：1-全场，2-指定商品，3-指定分类
  status: number;                // 状态：0-禁用，1-启用
  createdAt?: string;            // 创建时间
  updatedAt?: string;            // 更新时间
  externField1?: string;         // 预留字段1
  externField2?: string;         // 预留字段2
}

// 创建优惠券表单数据
export interface CreateCouponForm {
  name: string;
  description?: string;
  type: CouponType;
  discountValue: number;
  maxDiscountAmount?: number;
  minOrderAmount?: number;
  validDays?: number;
  validTo?: string;
  stock: number;
  isActive: boolean;
}

// 优惠券列表查询参数
export interface CouponListQuery {
  name?: string;
  type?: CouponType;
  isActive?: boolean;
  pageNum?: number;
  pageSize?: number;
}
